<?php

/** 改变属性
 * @param $model
 * @param $attr
 * @return string
 */
function is_something($model, $attr)
{
    if ($model->$attr) {
        return '<span class="icon-ok change_attr" data-attr="' . $attr . '"></span>';
    }

    return '<span class="icon-ban-circle change_attr" data-attr="' . $attr . '"></span>';
}

/***
 * 博客--照片--点赞
 * @param $model
 * @param $attr
 * @return string
 */
function is_like($model, $attr)
{
    if ($model->$attr) {
        return '<i class="icon-hand-up green change_attr" data-attr="' . $attr . '"></i>';
    }

    return '<i class="icon-hand-down danger change_attr" data-attr="' . $attr . '"></i>';
}


/**
 * 收银系统---品牌管理---查看商品
 * @param $brand
 * @return string
 */
function show_brand_products($brand)
{
    if (!$brand->products->isEmpty()) {
        return '<a href="' . route('cashier.product.index', ['brand_id' => $brand->id]) . '">
                <span class="btn btn-xs btn-pink">查看商品</span></a>';
    }
}


/**
 * 收银系统---二级分类---查看商品
 * @param $category
 * @return string
 */
function show_category_products($category)
{
    if (!$category->products->isEmpty()) {
        return '<a href="' . route('cashier.product.index', ['category_id' => $category->id]) . '">
                <span class="btn btn-xs btn-pink">查看商品</span></a>';
    }
}


/**
 * 商城系统---品牌管理---查看商品
 * @param $mark
 * @return string
 */
function show_mark_goods($mark)
{
    if (!$mark->goods->isEmpty()) {
        return '<a href="' . route('shop.good.index', ['mark_id' => $mark->id]) . '">
                <span class="btn btn-xs btn-pink">查看商品</span></a>';
    }
}


/**
 * 商城系统---二级分类---查看商品
 * @param $tag
 * @return string
 */
function show_tag_goods($tag)
{
    if (!$tag->goods->isEmpty()) {
        return '<a href="' . route('shop.good.index', ['tag_id' => $tag->id]) . '">
                <span class="btn btn-xs btn-pink">查看商品</span></a>';
    }
}


/**
 * 收银系统---库存调拨----生成单据编号
 * @return bool|string
 */
function make_allocation_code()
{
    return substr(implode(NULL, array_map('ord', str_split(substr(uniqid(), 3, 10), 2))), 0, 8);
}


/**
 * 微信菜单, 删除空数组
 * @param $buttons
 */
function wechat_menus($request_buttons)
{
    $buttons = [];

    foreach ($request_buttons as $key => $value) {
        if ($value['name'] == "") {
            continue;
        }

        $buttons["$key"] = wechat_key_url($value);

        foreach ($value["sub_button"] as $k => $v) {
            if ($v['name'] == "") {
                continue;
            }
            $buttons["$key"]["sub_button"][] = wechat_key_url($v);
        }
    }
    return $buttons;
}

/**
 * 根据类型,返回url或者key
 * @param $value
 * @return array
 */
function wechat_key_url($value)
{
    $result = [];

    $result['type'] = $value['type'];
    $result['name'] = $value['name'];
    if ($value['type'] == "click") {
        $result['key'] = $value['value'];
    } else {
        $result['url'] = $value['value'];
    }
    return $result;
}


/**
 * 订单状态
 * @param $status
 * @return mixed
 */
function order_status($status)
{
    $info = config('admin.order_status');
    return $info["$status"];
}


/***
 * 支付方式
 * @param $pay_type
 * @return mixed
 */
function order_pay_type($pay_type)
{
    $result = config('admin.order_pay_type');
    return $result["$pay_type"];
}


/***
 * 订单状态显示的颜色
 * @param $status
 * @return string
 */
function order_color($status)
{
    switch ($status) {
        case '1':
            return 'uc-order-item-pay';  //橙色
            break;
        case '2':
            return 'uc-order-item-shipping';  //红色
            break;
        case '3':
            return 'uc-order-item-shipping';  //红色
            break;
        case '4':
            return 'uc-order-item-receiving';  //绿色
            break;
        case '5':
            return 'uc-order-item-finish';  //灰色
            break;
        default:
            return 'uc-order-item-finish';
    }
}


/***
 * 时间格式化
 * @param $attr
 * @param $datetime
 * @return false|string
 */
function time_format($attr, $datetime)
{
    if ($datetime == "") {
        return "";
    }
    return date($attr, strtotime($datetime));
}


/**
 * 成功api消息
 * @param string $msg
 * @return array
 */
function success($data = [], $msg = '')
{
    return ['status' => 1, 'msg' => $msg, 'data' => $data];
}


function get_file_type($filename)
{
    $type = "";
    //通过filetype()函数返回的文件类型做为选择的条件
    switch (filetype($filename)) {
        case 'file':
            $type .= "普通文件";
            break;
        case 'dir':
            $type .= "目录文件";
            break;
        case 'block':
            $type .= "块设备文件";
            break;
        case 'char':
            $type .= "字符设备文件";
            break;
        case 'fifo':
            $type .= "命名管道文件";
            break;
        case 'link':
            $type .= "符号链接";
            break;
        case 'unknown':
            $type .= "末知类型";
            break;
        default:
            $type .= "没有检测到类型";
    }
    //返回转换后的类型
    return $type;
}

//自定义一个文件大小单位转换函数
function get_file_size($bytes)
{
    //如果提供的字节数大于等于2的40次方，则条件成立
    if ($bytes >= pow(2, 40)) {
        //将字节大小转换为同等的T大小
        $return = round($bytes / pow(1024, 4), 2);
        //单位为TB
        $suffix = "TB";
        //如果提供的字节数大于等于2的30次方，则条件成立
    } elseif ($bytes >= pow(2, 30)) {
        //将字节大小转换为同等的G大小
        $return = round($bytes / pow(1024, 3), 2);
        //单位为GB
        $suffix = "GB";
        //如果提供的字节数大于等于2的20次方，则条件成立
    } elseif ($bytes >= pow(2, 20)) {
        //将字节大小转换为同等的M大小
        $return = round($bytes / pow(1024, 2), 2);
        //单位为MB
        $suffix = "MB";
        //如果提供的字节数大于等于2的10次方，则条件成立
    } elseif ($bytes >= pow(2, 10)) {
        //将字节大小转换为同等的K大小
        $return = round($bytes / pow(1024, 1), 2);
        //单位为KB
        $suffix = "KB";
        //否则提供的字节数小于2的10次方，则条件成立
    } else {
        //字节大小单位不变
        $return = $bytes;
        //单位为Byte
        $suffix = "Byte";
    }
    //返回合适的文件大小和单位
    return $return . " " . $suffix;
}

function dir_info($path)
{
    $result = [];
    $handle = opendir($path);
    while ($file = readdir($handle)) {
        $array = [];
        if (substr($file, 0, 1) == ".") {
            continue;
        }
        $array["name"] = $file;
        $array["type"] = get_file_type($path . "/" . $file);
        $array["size"] = get_file_size(filesize($path . "/" . $file));
        $array["date"] = date("Y 年 m 月 j 日", filectime($path . "/" . $file));
        $array["is_image"] = @getimagesize($path . "/" . $file) ? true : false;
        $result[] = $array;
    }
    closedir($handle);
    return $result;
}
